[INFO] cloning repository https://github.com/dao-galaxy/bloom-p2p
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/dao-galaxy/bloom-p2p" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdao-galaxy%2Fbloom-p2p", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdao-galaxy%2Fbloom-p2p'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 860c93bf42effdf45d87af5e4d6a54862f9523f2
[INFO] fixing dao-galaxy/bloom-p2p against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdao-galaxy%2Fbloom-p2p" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/dao-galaxy/bloom-p2p
[INFO] finished tweaking git repo https://github.com/dao-galaxy/bloom-p2p
[INFO] tweaked toml for git repo https://github.com/dao-galaxy/bloom-p2p written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/dao-galaxy/bloom-p2p on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/dao-galaxy/bloom-p2p already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: network/Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `ethcore-network` (manifest) generated 1 warning
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 2c53907b4599482f6b6804405dd0eaebf0952e8f73c3dd5087b8798571178f38
[INFO] running `Command { std: "docker" "start" "2c53907b4599482f6b6804405dd0eaebf0952e8f73c3dd5087b8798571178f38", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "2c53907b4599482f6b6804405dd0eaebf0952e8f73c3dd5087b8798571178f38" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2c53907b4599482f6b6804405dd0eaebf0952e8f73c3dd5087b8798571178f38", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "2c53907b4599482f6b6804405dd0eaebf0952e8f73c3dd5087b8798571178f38" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating network-devp2p/Cargo.toml from 2018 edition to 2021
[INFO] [stderr]    Migrating io/Cargo.toml from 2018 edition to 2021
[INFO] [stderr]    Migrating network/Cargo.toml from 2015 edition to 2018
[INFO] [stderr]    Migrating Cargo.toml from 2018 edition to 2021
[INFO] [stderr] note: Switching to Edition 2021 will enable the use of the version 2 feature resolver in Cargo.
[INFO] [stderr] This may cause some dependencies to be built with fewer features enabled than previously.
[INFO] [stderr] More information about the resolver changes may be found at https://doc.rust-lang.org/nightly/edition-guide/rust-2021/default-cargo-resolver.html
[INFO] [stderr] When building the following dependencies, the given features will no longer be used:
[INFO] [stderr] 
[INFO] [stderr]   semver v0.9.0 (as host dependency) removed features: serde
[INFO] [stderr]   serde v1.0.111 (as host dependency) removed features: alloc, derive, serde_derive
[INFO] [stderr] 
[INFO] [stderr] warning: network/Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `ethcore-network` (manifest) generated 1 warning
[INFO] [stderr]    Compiling libc v0.2.71
[INFO] [stderr]    Compiling proc-macro2 v1.0.18
[INFO] [stderr]    Compiling unicode-xid v0.2.0
[INFO] [stderr]    Compiling syn v1.0.30
[INFO] [stderr]    Compiling serde v1.0.111
[INFO] [stderr]    Compiling autocfg v1.0.0
[INFO] [stderr]    Compiling log v0.4.8
[INFO] [stderr]     Checking futures v0.1.29
[INFO] [stderr]    Compiling typenum v1.12.0
[INFO] [stderr]    Compiling getrandom v0.1.14
[INFO] [stderr]     Checking rand_core v0.4.2
[INFO] [stderr]     Checking smallvec v1.4.0
[INFO] [stderr]     Checking lock_api v0.3.4
[INFO] [stderr]     Checking ppv-lite86 v0.2.8
[INFO] [stderr]    Compiling autocfg v0.1.7
[INFO] [stderr]     Checking smallvec v0.6.13
[INFO] [stderr]    Compiling crunchy v0.2.2
[INFO] [stderr]     Checking rand_core v0.3.1
[INFO] [stderr]     Checking rustc-hex v2.1.0
[INFO] [stderr]    Compiling crossbeam-utils v0.7.2
[INFO] [stderr]    Compiling memoffset v0.5.4
[INFO] [stderr]    Compiling crossbeam-epoch v0.8.2
[INFO] [stderr]    Compiling cc v1.0.41
[INFO] [stderr]     Checking opaque-debug v0.2.3
[INFO] [stderr]     Checking byte-tools v0.3.1
[INFO] [stderr]     Checking itoa v0.4.5
[INFO] [stderr]    Compiling version_check v0.9.2
[INFO] [stderr]    Compiling num-traits v0.2.11
[INFO] [stderr]     Checking rlp v0.4.5
[INFO] [stderr]     Checking block-padding v0.1.5
[INFO] [stderr]    Compiling tiny-keccak v2.0.2
[INFO] [stderr]     Checking radium v0.3.0
[INFO] [stderr]     Checking matches v0.1.8
[INFO] [stderr]    Compiling memchr v2.3.3
[INFO] [stderr]     Checking either v1.5.3
[INFO] [stderr]     Checking unicode-bidi v0.3.4
[INFO] [stderr]     Checking unicode-normalization v0.1.12
[INFO] [stderr]    Compiling rand_pcg v0.1.2
[INFO] [stderr]    Compiling rand_chacha v0.1.1
[INFO] [stderr]    Compiling num-integer v0.1.42
[INFO] [stderr]     Checking bitvec v0.17.4
[INFO] [stderr]     Checking arrayvec v0.5.1
[INFO] [stderr]     Checking byte-slice-cast v0.3.5
[INFO] [stderr]     Checking impl-rlp v0.2.1
[INFO] [stderr]    Compiling rand v0.6.5
[INFO] [stderr]     Checking subtle v1.0.0
[INFO] [stderr]     Checking uint v0.8.3
[INFO] [stderr]     Checking rand_xorshift v0.1.1
[INFO] [stderr]     Checking rand_isaac v0.1.1
[INFO] [stderr]     Checking crossbeam-queue v0.2.2
[INFO] [stderr]     Checking rand_hc v0.1.0
[INFO] [stderr]     Checking rand_jitter v0.1.4
[INFO] [stderr]    Compiling quote v1.0.6
[INFO] [stderr]     Checking fake-simd v0.1.2
[INFO] [stderr]     Checking safemem v0.3.3
[INFO] [stderr]     Checking aho-corasick v0.7.10
[INFO] [stderr]     Checking thread_local v1.0.1
[INFO] [stderr]     Checking base64 v0.9.3
[INFO] [stderr]     Checking regex-syntax v0.6.18
[INFO] [stderr]     Checking zeroize v1.1.0
[INFO] [stderr]    Compiling snap v1.0.0
[INFO] [stderr]     Checking bytes v0.5.4
[INFO] [stderr]     Checking tokio-executor v0.1.10
[INFO] [stderr]     Checking tokio-sync v0.1.8
[INFO] [stderr]     Checking subtle v2.2.3
[INFO] [stderr]     Checking crossbeam-deque v0.7.3
[INFO] [stderr]     Checking semver-parser v0.7.0
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.2
[INFO] [stderr]     Checking gimli v0.21.0
[INFO] [stderr]    Compiling failure_derive v0.1.8
[INFO] [stderr]     Checking adler32 v1.1.0
[INFO] [stderr]     Checking quick-error v1.2.3
[INFO] [stderr]     Checking ipnetwork v0.12.8
[INFO] [stderr]    Compiling secp256k1-sys v0.1.2
[INFO] [stderr]     Checking idna v0.2.0
[INFO] [stderr]    Compiling natpmp v0.2.0
[INFO] [stderr]     Checking tokio-current-thread v0.1.7
[INFO] [stderr]     Checking iovec v0.1.4
[INFO] [stderr]     Checking net2 v0.2.34
[INFO] [stderr]     Checking num_cpus v1.13.0
[INFO] [stderr]     Checking parking_lot_core v0.7.2
[INFO] [stderr]     Checking bytes v0.4.12
[INFO] [stderr]     Checking generic-array v0.12.3
[INFO] [stderr]     Checking tokio-threadpool v0.1.18
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]     Checking block-cipher-trait v0.6.2
[INFO] [stderr]     Checking digest v0.8.1
[INFO] [stderr]     Checking parking_lot v0.10.2
[INFO] [stderr]     Checking rand_chacha v0.2.2
[INFO] [stderr]     Checking mio v0.6.22
[INFO] [stderr]     Checking block-buffer v0.7.3
[INFO] [stderr]     Checking tokio-timer v0.2.13
[INFO] [stderr]     Checking crypto-mac v0.7.0
[INFO] [stderr]     Checking rand_os v0.1.3
[INFO] [stderr]     Checking time v0.1.43
[INFO] [stderr]     Checking hmac v0.7.1
[INFO] [stderr]     Checking aes-soft v0.3.3
[INFO] [stderr]     Checking tokio-io v0.1.13
[INFO] [stderr]     Checking stream-cipher v0.3.2
[INFO] [stderr]     Checking sha2 v0.8.2
[INFO] [stderr]     Checking rand v0.7.3
[INFO] [stderr]     Checking rand v0.5.6
[INFO] [stderr]     Checking ripemd160 v0.8.0
[INFO] [stderr]     Checking ctr v0.3.2
[INFO] [stderr]     Checking block-modes v0.3.3
[INFO] [stderr]     Checking chrono v0.4.11
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking http v0.2.1
[INFO] [stderr]     Checking url v2.1.1
[INFO] [stderr]     Checking mio-uds v0.6.8
[INFO] [stderr]     Checking tokio-codec v0.1.2
[INFO] [stderr]     Checking humantime v1.3.0
[INFO] [stderr]     Checking xmltree v0.10.0
[INFO] [stderr]     Checking aes-ctr v0.3.0
[INFO] [stderr]     Checking aes v0.3.2
[INFO] [stderr]     Checking miniz_oxide v0.3.7
[INFO] [stderr]    Compiling unicase v2.6.0
[INFO] [stderr]    Compiling proc-macro-error v1.0.2
[INFO] [stderr]     Checking linked-hash-map v0.5.3
[INFO] [stderr]     Checking bs58 v0.3.1
[INFO] [stderr]     Checking tokio-fs v0.1.7
[INFO] [stderr]     Checking base64 v0.12.1
[INFO] [stderr]     Checking home v0.5.3
[INFO] [stderr]     Checking object v0.20.0
[INFO] [stderr]     Checking hex v0.4.2
[INFO] [stderr]     Checking rustc-demangle v0.1.16
[INFO] [stderr]     Checking termcolor v1.1.0
[INFO] [stderr]     Checking regex v1.3.9
[INFO] [stderr]     Checking parity-path v0.1.3
[INFO] [stderr]     Checking lru-cache v0.1.2
[INFO] [stderr]     Checking idna v0.1.5
[INFO] [stderr]     Checking bstr v0.2.13
[INFO] [stderr]     Checking unicode-width v0.1.7
[INFO] [stderr]     Checking parity-bytes v0.1.2
[INFO] [stderr]    Compiling unicode-segmentation v1.6.0
[INFO] [stderr]    Compiling nix v0.17.0
[INFO] [stderr]     Checking percent-encoding v1.0.1
[INFO] [stderr]     Checking timer v0.2.0
[INFO] [stderr]     Checking fixed-hash v0.6.1
[INFO] [stderr]     Checking textwrap v0.11.0
[INFO] [stderr]     Checking pbkdf2 v0.3.0
[INFO] [stderr]     Checking void v1.0.2
[INFO] [stderr]    Compiling proc-macro-hack v0.5.16
[INFO] [stderr]     Checking secp256k1 v0.17.2
[INFO] [stderr]     Checking tokio-service v0.1.0
[INFO] [stderr]     Checking assert_matches v1.3.0
[INFO] [stderr]     Checking remove_dir_all v0.5.2
[INFO] [stderr]     Checking url v1.7.2
[INFO] [stderr]     Checking tempfile v3.1.0
[INFO] [stderr]     Checking scrypt v0.2.0
[INFO] [stderr]     Checking clap v2.33.1
[INFO] [stderr]    Compiling heck v0.3.1
[INFO] [stderr]     Checking enr v0.1.0
[INFO] [stderr]    Compiling hex-literal-impl v0.2.2
[INFO] [stderr]     Checking globset v0.4.5
[INFO] [stderr]     Checking env_logger v0.5.13
[INFO] [stderr]     Checking env_logger v0.7.1
[INFO] [stderr]     Checking addr2line v0.12.2
[INFO] [stderr]     Checking hex-literal v0.2.1
[INFO] [stderr]     Checking attohttpc v0.10.1
[INFO] [stderr]     Checking igd v0.10.2
[INFO] [stderr]     Checking backtrace v0.3.49
[INFO] [stderr]    Compiling syn-mid v0.5.0
[INFO] [stderr]    Compiling synstructure v0.12.4
[INFO] [stderr]    Compiling serde_derive v1.0.111
[INFO] [stderr]    Compiling derive_more v0.99.7
[INFO] [stderr]     Checking failure v0.1.8
[INFO] [stderr]    Compiling structopt-derive v0.4.8
[INFO] [stderr]     Checking ctrlc v3.1.4
[INFO] [stderr]     Checking structopt v0.3.15
[INFO] [stderr]     Checking parity-scale-codec v1.3.0
[INFO] [stderr]     Checking impl-serde v0.3.1
[INFO] [stderr]     Checking serde_json v1.0.53
[INFO] [stderr]     Checking semver v0.9.0
[INFO] [stderr]    Compiling toml v0.5.6
[INFO] [stderr]     Checking ethbloom v0.9.2
[INFO] [stderr]    Compiling rustc_version v0.2.3
[INFO] [stderr]    Compiling parking_lot_core v0.6.2
[INFO] [stderr]    Compiling parking_lot v0.9.0
[INFO] [stderr]     Checking jsonrpc-core v14.2.0
[INFO] [stderr]     Checking tokio-reactor v0.1.12
[INFO] [stderr]     Checking tokio-uds v0.2.6
[INFO] [stderr]     Checking tokio-tcp v0.1.4
[INFO] [stderr]     Checking tokio-udp v0.1.6
[INFO] [stderr]     Checking jsonrpc-pubsub v14.2.0
[INFO] [stderr]    Compiling proc-macro-crate v0.1.4
[INFO] [stderr]     Checking tokio v0.1.22
[INFO] [stderr]     Checking jsonrpc-client-transports v14.2.0
[INFO] [stderr]    Compiling jsonrpc-derive v14.2.1
[INFO] [stderr]     Checking ethcore-io v1.12.0 (/opt/rustwide/workdir/io)
[INFO] [stderr]     Checking jsonrpc-server-utils v14.2.0
[INFO] [stderr]    Migrating io/src/lib.rs from 2018 edition to 2021
[INFO] [stderr]     Checking jsonrpc-core-client v14.2.0
[INFO] [stderr]     Checking jsonrpc-tcp-server v14.2.0
[INFO] [stderr]     Checking impl-codec v0.4.2
[INFO] [stderr]     Checking primitive-types v0.7.2
[INFO] [stderr]     Checking ethereum-types v0.9.2
[INFO] [stderr]     Checking keccak-hash v0.5.1
[INFO] [stderr]     Checking parity-crypto v0.6.2
[INFO] [stderr]     Checking ethcore-network v1.12.0 (/opt/rustwide/workdir/network)
[INFO] [stderr]    Migrating network/src/lib.rs from 2015 edition to 2018
[INFO] [stderr]        Fixed network/src/error.rs (1 fix)
[INFO] [stderr]        Fixed network/src/lib.rs (5 fixes)
[INFO] [stderr]     Checking ethcore-network-devp2p v1.12.0 (/opt/rustwide/workdir/network-devp2p)
[INFO] [stderr]    Migrating network-devp2p/src/lib.rs from 2018 edition to 2021
[INFO] [stderr]     Checking bloom-p2p v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating network-devp2p/tests/tests.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/main.rs from 2018 edition to 2021
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 49.29s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: snap v1.0.0
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] [stderr] crater-edition-check: ethcore-network-devp2p v1.12.0 (/opt/rustwide/workdir/network-devp2p) updating edition from 2018 to 2021
[INFO] [stderr] crater-edition-check: ethcore-io v1.12.0 (/opt/rustwide/workdir/io) updating edition from 2018 to 2021
[INFO] [stderr] crater-edition-check: ethcore-network v1.12.0 (/opt/rustwide/workdir/network) updating edition from 2015 to 2018
[INFO] [stderr] crater-edition-check: bloom-p2p v0.1.0 (/opt/rustwide/workdir) updating edition from 2018 to 2021
[INFO] [stderr]    Compiling parking_lot_core v0.6.2
[INFO] [stderr]    Compiling parking_lot v0.9.0
[INFO] [stderr]    Compiling serde v1.0.111
[INFO] [stderr]     Checking tokio-reactor v0.1.12
[INFO] [stderr]     Checking tokio-uds v0.2.6
[INFO] [stderr]     Checking tokio-tcp v0.1.4
[INFO] [stderr]     Checking tokio-udp v0.1.6
[INFO] [stderr]     Checking tokio v0.1.22
[INFO] [stderr]     Checking ethcore-io v1.12.0 (/opt/rustwide/workdir/io)
[INFO] [stderr]     Checking jsonrpc-server-utils v14.2.0
[INFO] [stderr]     Checking ethcore-network v1.12.0 (/opt/rustwide/workdir/network)
[INFO] [stdout] warning: field `data` is never read
[INFO] [stdout]    --> io/src/lib.rs:216:4
[INFO] [stdout]     |
[INFO] [stdout] 215 |         struct MyMessage {
[INFO] [stdout]     |                --------- field in this struct
[INFO] [stdout] 216 |             data: u32
[INFO] [stdout]     |             ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MyMessage` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `data` is never read
[INFO] [stdout]    --> io/src/lib.rs:245:4
[INFO] [stdout]     |
[INFO] [stdout] 244 |         struct MyMessage {
[INFO] [stdout]     |                --------- field in this struct
[INFO] [stdout] 245 |             data: u32
[INFO] [stdout]     |             ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MyMessage` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking jsonrpc-tcp-server v14.2.0
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> network/src/client_version.rs:38:35
[INFO] [stdout]    |
[INFO] [stdout] 38 | #[derive(Clone,Debug,PartialEq,Eq,Serialize)]
[INFO] [stdout]    |                                   ^--------
[INFO] [stdout]    |                                   |
[INFO] [stdout]    |                                   `Serialize` is not local
[INFO] [stdout]    |                                   move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_ParityClientData`
[INFO] [stdout] 39 | pub struct ParityClientData {
[INFO] [stdout]    |            ---------------- `ParityClientData` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> network/src/client_version.rs:101:35
[INFO] [stdout]     |
[INFO] [stdout] 101 | #[derive(Clone,Debug,Eq,PartialEq,Serialize)]
[INFO] [stdout]     |                                   ^--------
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   `Serialize` is not local
[INFO] [stdout]     |                                   move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_ClientVersion`
[INFO] [stdout] 102 | pub enum ClientVersion {
[INFO] [stdout]     |          ------------- `ClientVersion` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]    --> network/src/client_version.rs:249:1
[INFO] [stdout]     |
[INFO] [stdout] 249 | pub mod tests {
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]    --> network/src/client_version.rs:17:9
[INFO] [stdout]     |
[INFO] [stdout]  17 | #![warn(missing_docs)]
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> network/src/client_version.rs:303:2
[INFO] [stdout]     |
[INFO] [stdout] 303 |     pub fn client_version_when_from_empty_string_then_default() {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> network/src/client_version.rs:310:2
[INFO] [stdout]     |
[INFO] [stdout] 310 |     pub fn get_number_from_version_when_valid_then_number() {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> network/src/client_version.rs:317:2
[INFO] [stdout]     |
[INFO] [stdout] 317 |     pub fn client_version_when_str_parity_format_and_valid_then_all_fields_match() {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> network/src/client_version.rs:331:2
[INFO] [stdout]     |
[INFO] [stdout] 331 |     pub fn client_version_when_str_parity_long_format_and_valid_then_all_fields_match() {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> network/src/client_version.rs:346:2
[INFO] [stdout]     |
[INFO] [stdout] 346 |     pub fn client_version_when_str_parity_long_format_and_valid_and_identity_multiple_tokens_then_all_fields_match() {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> network/src/client_version.rs:361:2
[INFO] [stdout]     |
[INFO] [stdout] 361 |     pub fn client_version_when_string_parity_format_and_valid_then_all_fields_match() {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> network/src/client_version.rs:375:2
[INFO] [stdout]     |
[INFO] [stdout] 375 |     pub fn client_version_when_parity_format_and_invalid_then_equals_parity_unknown_client_version_string() {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> network/src/client_version.rs:392:2
[INFO] [stdout]     |
[INFO] [stdout] 392 |     pub fn client_version_when_parity_format_without_identity_and_missing_compiler_field_then_equals_parity_unknown_client_version_string() {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> network/src/client_version.rs:408:2
[INFO] [stdout]     |
[INFO] [stdout] 408 |     pub fn client_version_when_parity_format_with_identity_and_missing_compiler_field_then_equals_parity_unknown_client_version_string() {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> network/src/client_version.rs:425:2
[INFO] [stdout]     |
[INFO] [stdout] 425 |     pub fn client_version_when_not_parity_format_and_valid_then_other_with_client_version_string() {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> network/src/client_version.rs:434:2
[INFO] [stdout]     |
[INFO] [stdout] 434 |     pub fn client_version_when_parity_format_and_valid_then_to_string_equal() {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> network/src/client_version.rs:443:2
[INFO] [stdout]     |
[INFO] [stdout] 443 |     pub fn client_version_when_other_then_to_string_equal_input_string() {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> network/src/client_version.rs:452:2
[INFO] [stdout]     |
[INFO] [stdout] 452 |     pub fn client_capabilities_when_parity_old_version_then_handles_large_requests_false() {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> network/src/client_version.rs:461:2
[INFO] [stdout]     |
[INFO] [stdout] 461 |     pub fn client_capabilities_when_parity_beta_version_then_not_handles_large_requests_true() {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> network/src/client_version.rs:476:2
[INFO] [stdout]     |
[INFO] [stdout] 476 |     pub fn client_version_when_to_owned_then_both_objects_equal() {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> network/src/client_version.rs:38:35
[INFO] [stdout]    |
[INFO] [stdout] 38 | #[derive(Clone,Debug,PartialEq,Eq,Serialize)]
[INFO] [stdout]    |                                   ^--------
[INFO] [stdout]    |                                   |
[INFO] [stdout]    |                                   `Serialize` is not local
[INFO] [stdout]    |                                   move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_ParityClientData`
[INFO] [stdout] 39 | pub struct ParityClientData {
[INFO] [stdout]    |            ---------------- `ParityClientData` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> network/src/client_version.rs:101:35
[INFO] [stdout]     |
[INFO] [stdout] 101 | #[derive(Clone,Debug,Eq,PartialEq,Serialize)]
[INFO] [stdout]     |                                   ^--------
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   `Serialize` is not local
[INFO] [stdout]     |                                   move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_ClientVersion`
[INFO] [stdout] 102 | pub enum ClientVersion {
[INFO] [stdout]     |          ------------- `ClientVersion` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking ethcore-network-devp2p v1.12.0 (/opt/rustwide/workdir/network-devp2p)
[INFO] [stdout] warning: field `protocol` is never read
[INFO] [stdout]    --> network-devp2p/src/connection.rs:265:6
[INFO] [stdout]     |
[INFO] [stdout] 264 | pub struct Packet {
[INFO] [stdout]     |            ------ field in this struct
[INFO] [stdout] 265 |     pub protocol: u16,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `peer_type` is never read
[INFO] [stdout]    --> network-devp2p/src/node_table.rs:194:6
[INFO] [stdout]     |
[INFO] [stdout] 191 | pub struct Node {
[INFO] [stdout]     |            ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 194 |     pub peer_type: PeerType,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Node` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_global_s` is never used
[INFO] [stdout]   --> network-devp2p/src/ip_utils.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub trait SocketAddrExt {
[INFO] [stdout]    |           ------------- method in this trait
[INFO] [stdout] 38 |     /// Returns true if the address appears to be globally routable.
[INFO] [stdout] 39 |     fn is_global_s(&self) -> bool;
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> network-devp2p/src/connection.rs:375:3
[INFO] [stdout]     |
[INFO] [stdout] 375 |         &mut packet[..HEADER_LEN].copy_from_slice(&mut header);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 375 |         let _ = &mut packet[..HEADER_LEN].copy_from_slice(&mut header);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> network-devp2p/src/connection.rs:379:3
[INFO] [stdout]     |
[INFO] [stdout] 379 |         &mut packet[32..32 + len].copy_from_slice(payload);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 379 |         let _ = &mut packet[32..32 + len].copy_from_slice(payload);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> network-devp2p/src/connection.rs:450:3
[INFO] [stdout]     |
[INFO] [stdout] 450 |         &mut enc[..].copy_from_slice(prev.as_bytes());
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 450 |         let _ = &mut enc[..].copy_from_slice(prev.as_bytes());
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this creates a dangling pointer because temporary `[u16; 8]` is dropped at end of statement
[INFO] [stdout]    --> network-devp2p/src/node_table.rs:101:42
[INFO] [stdout]     |
[INFO] [stdout] 101 |                 let o: *const u8 = a.ip().segments().as_ptr() as *const u8;
[INFO] [stdout]     |                                    ----------------- ^^^^^^ pointer created here
[INFO] [stdout]     |                                    |
[INFO] [stdout]     |                                    this `[u16; 8]` is dropped at end of statement
[INFO] [stdout]     |
[INFO] [stdout]     = help: bind the `[u16; 8]` to a variable such that it outlives the pointer returned by `as_ptr`
[INFO] [stdout]     = note: a dangling pointer is safe, but dereferencing one is undefined behavior
[INFO] [stdout]     = note: returning a pointer to a local variable will always result in a dangling pointer
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/reference/destructors.html>
[INFO] [stdout]     = note: `#[warn(dangling_pointers_from_temporaries)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> network-devp2p/src/node_table.rs:547:11
[INFO] [stdout]     |
[INFO] [stdout] 547 |     #[derive(Serialize, Deserialize)]
[INFO] [stdout]     |              ^--------
[INFO] [stdout]     |              |
[INFO] [stdout]     |              `Serialize` is not local
[INFO] [stdout]     |              move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_NodeTable`
[INFO] [stdout] 548 |     pub struct NodeTable {
[INFO] [stdout]     |                --------- `NodeTable` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> network-devp2p/src/node_table.rs:547:22
[INFO] [stdout]     |
[INFO] [stdout] 547 |     #[derive(Serialize, Deserialize)]
[INFO] [stdout]     |                         ^----------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `Deserialize` is not local
[INFO] [stdout]     |                         move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_NodeTable`
[INFO] [stdout] 548 |     pub struct NodeTable {
[INFO] [stdout]     |                --------- `NodeTable` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> network-devp2p/src/node_table.rs:552:11
[INFO] [stdout]     |
[INFO] [stdout] 552 |     #[derive(Serialize, Deserialize)]
[INFO] [stdout]     |              ^--------
[INFO] [stdout]     |              |
[INFO] [stdout]     |              `Serialize` is not local
[INFO] [stdout]     |              move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_NodeContact`
[INFO] [stdout] 553 |     pub enum NodeContact {
[INFO] [stdout]     |              ----------- `NodeContact` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> network-devp2p/src/node_table.rs:552:22
[INFO] [stdout]     |
[INFO] [stdout] 552 |     #[derive(Serialize, Deserialize)]
[INFO] [stdout]     |                         ^----------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `Deserialize` is not local
[INFO] [stdout]     |                         move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_NodeContact`
[INFO] [stdout] 553 |     pub enum NodeContact {
[INFO] [stdout]     |              ----------- `NodeContact` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> network-devp2p/src/node_table.rs:573:11
[INFO] [stdout]     |
[INFO] [stdout] 573 |     #[derive(Serialize, Deserialize)]
[INFO] [stdout]     |              ^--------
[INFO] [stdout]     |              |
[INFO] [stdout]     |              `Serialize` is not local
[INFO] [stdout]     |              move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Node`
[INFO] [stdout] 574 |     pub struct Node {
[INFO] [stdout]     |                ---- `Node` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> network-devp2p/src/node_table.rs:573:22
[INFO] [stdout]     |
[INFO] [stdout] 573 |     #[derive(Serialize, Deserialize)]
[INFO] [stdout]     |                         ^----------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `Deserialize` is not local
[INFO] [stdout]     |                         move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Node`
[INFO] [stdout] 574 |     pub struct Node {
[INFO] [stdout]     |                ---- `Node` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `protocol` is never read
[INFO] [stdout]    --> network-devp2p/src/connection.rs:265:6
[INFO] [stdout]     |
[INFO] [stdout] 264 | pub struct Packet {
[INFO] [stdout]     |            ------ field in this struct
[INFO] [stdout] 265 |     pub protocol: u16,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `peer_type` is never read
[INFO] [stdout]    --> network-devp2p/src/node_table.rs:194:6
[INFO] [stdout]     |
[INFO] [stdout] 191 | pub struct Node {
[INFO] [stdout]     |            ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 194 |     pub peer_type: PeerType,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Node` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> network-devp2p/src/connection.rs:375:3
[INFO] [stdout]     |
[INFO] [stdout] 375 |         &mut packet[..HEADER_LEN].copy_from_slice(&mut header);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 375 |         let _ = &mut packet[..HEADER_LEN].copy_from_slice(&mut header);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> network-devp2p/src/connection.rs:379:3
[INFO] [stdout]     |
[INFO] [stdout] 379 |         &mut packet[32..32 + len].copy_from_slice(payload);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 379 |         let _ = &mut packet[32..32 + len].copy_from_slice(payload);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> network-devp2p/src/connection.rs:450:3
[INFO] [stdout]     |
[INFO] [stdout] 450 |         &mut enc[..].copy_from_slice(prev.as_bytes());
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 450 |         let _ = &mut enc[..].copy_from_slice(prev.as_bytes());
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this creates a dangling pointer because temporary `[u16; 8]` is dropped at end of statement
[INFO] [stdout]    --> network-devp2p/src/node_table.rs:101:42
[INFO] [stdout]     |
[INFO] [stdout] 101 |                 let o: *const u8 = a.ip().segments().as_ptr() as *const u8;
[INFO] [stdout]     |                                    ----------------- ^^^^^^ pointer created here
[INFO] [stdout]     |                                    |
[INFO] [stdout]     |                                    this `[u16; 8]` is dropped at end of statement
[INFO] [stdout]     |
[INFO] [stdout]     = help: bind the `[u16; 8]` to a variable such that it outlives the pointer returned by `as_ptr`
[INFO] [stdout]     = note: a dangling pointer is safe, but dereferencing one is undefined behavior
[INFO] [stdout]     = note: returning a pointer to a local variable will always result in a dangling pointer
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/reference/destructors.html>
[INFO] [stdout]     = note: `#[warn(dangling_pointers_from_temporaries)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> network-devp2p/src/node_table.rs:547:11
[INFO] [stdout]     |
[INFO] [stdout] 547 |     #[derive(Serialize, Deserialize)]
[INFO] [stdout]     |              ^--------
[INFO] [stdout]     |              |
[INFO] [stdout]     |              `Serialize` is not local
[INFO] [stdout]     |              move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_NodeTable`
[INFO] [stdout] 548 |     pub struct NodeTable {
[INFO] [stdout]     |                --------- `NodeTable` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> network-devp2p/src/node_table.rs:547:22
[INFO] [stdout]     |
[INFO] [stdout] 547 |     #[derive(Serialize, Deserialize)]
[INFO] [stdout]     |                         ^----------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `Deserialize` is not local
[INFO] [stdout]     |                         move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_NodeTable`
[INFO] [stdout] 548 |     pub struct NodeTable {
[INFO] [stdout]     |                --------- `NodeTable` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> network-devp2p/src/node_table.rs:552:11
[INFO] [stdout]     |
[INFO] [stdout] 552 |     #[derive(Serialize, Deserialize)]
[INFO] [stdout]     |              ^--------
[INFO] [stdout]     |              |
[INFO] [stdout]     |              `Serialize` is not local
[INFO] [stdout]     |              move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_NodeContact`
[INFO] [stdout] 553 |     pub enum NodeContact {
[INFO] [stdout]     |              ----------- `NodeContact` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> network-devp2p/src/node_table.rs:552:22
[INFO] [stdout]     |
[INFO] [stdout] 552 |     #[derive(Serialize, Deserialize)]
[INFO] [stdout]     |                         ^----------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `Deserialize` is not local
[INFO] [stdout]     |                         move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_NodeContact`
[INFO] [stdout] 553 |     pub enum NodeContact {
[INFO] [stdout]     |              ----------- `NodeContact` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> network-devp2p/src/node_table.rs:573:11
[INFO] [stdout]     |
[INFO] [stdout] 573 |     #[derive(Serialize, Deserialize)]
[INFO] [stdout]     |              ^--------
[INFO] [stdout]     |              |
[INFO] [stdout]     |              `Serialize` is not local
[INFO] [stdout]     |              move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Node`
[INFO] [stdout] 574 |     pub struct Node {
[INFO] [stdout]     |                ---- `Node` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> network-devp2p/src/node_table.rs:573:22
[INFO] [stdout]     |
[INFO] [stdout] 573 |     #[derive(Serialize, Deserialize)]
[INFO] [stdout]     |                         ^----------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `Deserialize` is not local
[INFO] [stdout]     |                         move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Node`
[INFO] [stdout] 574 |     pub struct Node {
[INFO] [stdout]     |                ---- `Node` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling toml v0.5.6
[INFO] [stderr]    Compiling proc-macro-crate v0.1.4
[INFO] [stderr]    Compiling jsonrpc-derive v14.2.1
[INFO] [stderr]     Checking bloom-p2p v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `serde_json`
[INFO] [stdout]  --> src/commands/client_cmd.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use serde_json;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Ipv4Addr`
[INFO] [stdout]  --> src/commands/client_cmd.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::net::{Ipv4Addr, SocketAddr, SocketAddrV4};
[INFO] [stdout]   |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Tx_pool` should have an upper camel case name
[INFO] [stdout]   --> src/commands/client_cmd.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     Tx_pool {},
[INFO] [stdout]    |     ^^^^^^^ help: convert the identifier to upper camel case: `TxPool`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Node_buckets` should have an upper camel case name
[INFO] [stdout]   --> src/commands/client_cmd.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |     Node_buckets {},
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `NodeBuckets`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Send_tx` should have an upper camel case name
[INFO] [stdout]   --> src/commands/client_cmd.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     Send_tx {
[INFO] [stdout]    |     ^^^^^^^ help: convert the identifier to upper camel case: `SendTx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Peers_sub` should have an upper camel case name
[INFO] [stdout]   --> src/commands/client_cmd.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 |     Peers_sub {
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to upper camel case: `PeersSub`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Peers_unsub` should have an upper camel case name
[INFO] [stdout]   --> src/commands/client_cmd.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 44 |     Peers_unsub {
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `PeersUnsub`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json`
[INFO] [stdout]  --> src/commands/client_cmd.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use serde_json;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Ipv4Addr`
[INFO] [stdout]  --> src/commands/client_cmd.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::net::{Ipv4Addr, SocketAddr, SocketAddrV4};
[INFO] [stdout]   |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Tx_pool` should have an upper camel case name
[INFO] [stdout]   --> src/commands/client_cmd.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     Tx_pool {},
[INFO] [stdout]    |     ^^^^^^^ help: convert the identifier to upper camel case: `TxPool`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Node_buckets` should have an upper camel case name
[INFO] [stdout]   --> src/commands/client_cmd.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |     Node_buckets {},
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `NodeBuckets`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Send_tx` should have an upper camel case name
[INFO] [stdout]   --> src/commands/client_cmd.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     Send_tx {
[INFO] [stdout]    |     ^^^^^^^ help: convert the identifier to upper camel case: `SendTx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Peers_sub` should have an upper camel case name
[INFO] [stdout]   --> src/commands/client_cmd.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 |     Peers_sub {
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to upper camel case: `PeersSub`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Peers_unsub` should have an upper camel case name
[INFO] [stdout]   --> src/commands/client_cmd.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 44 |     Peers_unsub {
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `PeersUnsub`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hello_info`
[INFO] [stdout]   --> src/server.rs:79:13
[INFO] [stdout]    |
[INFO] [stdout] 79 |         let hello_info: String = rlp_obj.at(0).unwrap().as_val().unwrap();
[INFO] [stdout]    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hello_info`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/rpc.rs:17:10
[INFO] [stdout]    |
[INFO] [stdout] 17 | #[derive(Serialize, Deserialize)]
[INFO] [stdout]    |          ^--------
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Serialize` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Info`
[INFO] [stdout] 18 | pub struct Info {
[INFO] [stdout]    |            ---- `Info` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/rpc.rs:17:21
[INFO] [stdout]    |
[INFO] [stdout] 17 | #[derive(Serialize, Deserialize)]
[INFO] [stdout]    |                     ^----------
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     `Deserialize` is not local
[INFO] [stdout]    |                     move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Info`
[INFO] [stdout] 18 | pub struct Info {
[INFO] [stdout]    |            ---- `Info` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/rpc.rs:23:10
[INFO] [stdout]    |
[INFO] [stdout] 23 | #[derive(Serialize, Deserialize)]
[INFO] [stdout]    |          ^--------
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Serialize` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Peers`
[INFO] [stdout] 24 | pub struct Peers {
[INFO] [stdout]    |            ----- `Peers` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/rpc.rs:23:21
[INFO] [stdout]    |
[INFO] [stdout] 23 | #[derive(Serialize, Deserialize)]
[INFO] [stdout]    |                     ^----------
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     `Deserialize` is not local
[INFO] [stdout]    |                     move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Peers`
[INFO] [stdout] 24 | pub struct Peers {
[INFO] [stdout]    |            ----- `Peers` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/rpc.rs:29:10
[INFO] [stdout]    |
[INFO] [stdout] 29 | #[derive(Serialize, Deserialize)]
[INFO] [stdout]    |          ^--------
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Serialize` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Node`
[INFO] [stdout] 30 | pub struct Node {
[INFO] [stdout]    |            ---- `Node` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/rpc.rs:29:21
[INFO] [stdout]    |
[INFO] [stdout] 29 | #[derive(Serialize, Deserialize)]
[INFO] [stdout]    |                     ^----------
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     `Deserialize` is not local
[INFO] [stdout]    |                     move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Node`
[INFO] [stdout] 30 | pub struct Node {
[INFO] [stdout]    |            ---- `Node` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/server.rs:38:24
[INFO] [stdout]    |
[INFO] [stdout] 38 | #[derive(Clone, Debug, Serialize, Deserialize)]
[INFO] [stdout]    |                        ^--------
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Serialize` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_PeerInfo`
[INFO] [stdout] 39 | pub struct PeerInfo {
[INFO] [stdout]    |            -------- `PeerInfo` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/server.rs:38:35
[INFO] [stdout]    |
[INFO] [stdout] 38 | #[derive(Clone, Debug, Serialize, Deserialize)]
[INFO] [stdout]    |                                   ^----------
[INFO] [stdout]    |                                   |
[INFO] [stdout]    |                                   `Deserialize` is not local
[INFO] [stdout]    |                                   move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_PeerInfo`
[INFO] [stdout] 39 | pub struct PeerInfo {
[INFO] [stdout]    |            -------- `PeerInfo` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/server.rs:43:24
[INFO] [stdout]    |
[INFO] [stdout] 43 | #[derive(Clone, Debug, Serialize, Deserialize)]
[INFO] [stdout]    |                        ^--------
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Serialize` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Tx`
[INFO] [stdout] 44 | pub struct Tx {
[INFO] [stdout]    |            -- `Tx` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/server.rs:43:35
[INFO] [stdout]    |
[INFO] [stdout] 43 | #[derive(Clone, Debug, Serialize, Deserialize)]
[INFO] [stdout]    |                                   ^----------
[INFO] [stdout]    |                                   |
[INFO] [stdout]    |                                   `Deserialize` is not local
[INFO] [stdout]    |                                   move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Tx`
[INFO] [stdout] 44 | pub struct Tx {
[INFO] [stdout]    |            -- `Tx` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/server.rs:48:33
[INFO] [stdout]    |
[INFO] [stdout] 48 | #[derive(Default, Clone, Debug, Serialize, Deserialize)]
[INFO] [stdout]    |                                 ^--------
[INFO] [stdout]    |                                 |
[INFO] [stdout]    |                                 `Serialize` is not local
[INFO] [stdout]    |                                 move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_TxPool`
[INFO] [stdout] 49 | pub struct TxPool {
[INFO] [stdout]    |            ------ `TxPool` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/server.rs:48:44
[INFO] [stdout]    |
[INFO] [stdout] 48 | #[derive(Default, Clone, Debug, Serialize, Deserialize)]
[INFO] [stdout]    |                                            ^----------
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            `Deserialize` is not local
[INFO] [stdout]    |                                            move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_TxPool`
[INFO] [stdout] 49 | pub struct TxPool {
[INFO] [stdout]    |            ------ `TxPool` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/server.rs:61:22
[INFO] [stdout]    |
[INFO] [stdout] 61 |     pub fn get_peers(&self) -> RwLockReadGuard<HashMap<PeerId, PeerInfo>> {
[INFO] [stdout]    |                      ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 61 |     pub fn get_peers(&self) -> RwLockReadGuard<'_, HashMap<PeerId, PeerInfo>> {
[INFO] [stdout]    |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hello_info`
[INFO] [stdout]   --> src/server.rs:79:13
[INFO] [stdout]    |
[INFO] [stdout] 79 |         let hello_info: String = rlp_obj.at(0).unwrap().as_val().unwrap();
[INFO] [stdout]    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hello_info`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/rpc.rs:17:10
[INFO] [stdout]    |
[INFO] [stdout] 17 | #[derive(Serialize, Deserialize)]
[INFO] [stdout]    |          ^--------
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Serialize` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Info`
[INFO] [stdout] 18 | pub struct Info {
[INFO] [stdout]    |            ---- `Info` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/rpc.rs:17:21
[INFO] [stdout]    |
[INFO] [stdout] 17 | #[derive(Serialize, Deserialize)]
[INFO] [stdout]    |                     ^----------
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     `Deserialize` is not local
[INFO] [stdout]    |                     move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Info`
[INFO] [stdout] 18 | pub struct Info {
[INFO] [stdout]    |            ---- `Info` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/rpc.rs:23:10
[INFO] [stdout]    |
[INFO] [stdout] 23 | #[derive(Serialize, Deserialize)]
[INFO] [stdout]    |          ^--------
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Serialize` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Peers`
[INFO] [stdout] 24 | pub struct Peers {
[INFO] [stdout]    |            ----- `Peers` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/rpc.rs:23:21
[INFO] [stdout]    |
[INFO] [stdout] 23 | #[derive(Serialize, Deserialize)]
[INFO] [stdout]    |                     ^----------
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     `Deserialize` is not local
[INFO] [stdout]    |                     move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Peers`
[INFO] [stdout] 24 | pub struct Peers {
[INFO] [stdout]    |            ----- `Peers` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/rpc.rs:29:10
[INFO] [stdout]    |
[INFO] [stdout] 29 | #[derive(Serialize, Deserialize)]
[INFO] [stdout]    |          ^--------
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Serialize` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Node`
[INFO] [stdout] 30 | pub struct Node {
[INFO] [stdout]    |            ---- `Node` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/rpc.rs:29:21
[INFO] [stdout]    |
[INFO] [stdout] 29 | #[derive(Serialize, Deserialize)]
[INFO] [stdout]    |                     ^----------
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     `Deserialize` is not local
[INFO] [stdout]    |                     move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Node`
[INFO] [stdout] 30 | pub struct Node {
[INFO] [stdout]    |            ---- `Node` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/server.rs:38:24
[INFO] [stdout]    |
[INFO] [stdout] 38 | #[derive(Clone, Debug, Serialize, Deserialize)]
[INFO] [stdout]    |                        ^--------
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Serialize` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_PeerInfo`
[INFO] [stdout] 39 | pub struct PeerInfo {
[INFO] [stdout]    |            -------- `PeerInfo` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/server.rs:38:35
[INFO] [stdout]    |
[INFO] [stdout] 38 | #[derive(Clone, Debug, Serialize, Deserialize)]
[INFO] [stdout]    |                                   ^----------
[INFO] [stdout]    |                                   |
[INFO] [stdout]    |                                   `Deserialize` is not local
[INFO] [stdout]    |                                   move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_PeerInfo`
[INFO] [stdout] 39 | pub struct PeerInfo {
[INFO] [stdout]    |            -------- `PeerInfo` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/server.rs:43:24
[INFO] [stdout]    |
[INFO] [stdout] 43 | #[derive(Clone, Debug, Serialize, Deserialize)]
[INFO] [stdout]    |                        ^--------
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Serialize` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Tx`
[INFO] [stdout] 44 | pub struct Tx {
[INFO] [stdout]    |            -- `Tx` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/server.rs:43:35
[INFO] [stdout]    |
[INFO] [stdout] 43 | #[derive(Clone, Debug, Serialize, Deserialize)]
[INFO] [stdout]    |                                   ^----------
[INFO] [stdout]    |                                   |
[INFO] [stdout]    |                                   `Deserialize` is not local
[INFO] [stdout]    |                                   move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Tx`
[INFO] [stdout] 44 | pub struct Tx {
[INFO] [stdout]    |            -- `Tx` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/server.rs:48:33
[INFO] [stdout]    |
[INFO] [stdout] 48 | #[derive(Default, Clone, Debug, Serialize, Deserialize)]
[INFO] [stdout]    |                                 ^--------
[INFO] [stdout]    |                                 |
[INFO] [stdout]    |                                 `Serialize` is not local
[INFO] [stdout]    |                                 move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_TxPool`
[INFO] [stdout] 49 | pub struct TxPool {
[INFO] [stdout]    |            ------ `TxPool` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/server.rs:48:44
[INFO] [stdout]    |
[INFO] [stdout] 48 | #[derive(Default, Clone, Debug, Serialize, Deserialize)]
[INFO] [stdout]    |                                            ^----------
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            `Deserialize` is not local
[INFO] [stdout]    |                                            move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_TxPool`
[INFO] [stdout] 49 | pub struct TxPool {
[INFO] [stdout]    |            ------ `TxPool` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/server.rs:61:22
[INFO] [stdout]    |
[INFO] [stdout] 61 |     pub fn get_peers(&self) -> RwLockReadGuard<HashMap<PeerId, PeerInfo>> {
[INFO] [stdout]    |                      ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 61 |     pub fn get_peers(&self) -> RwLockReadGuard<'_, HashMap<PeerId, PeerInfo>> {
[INFO] [stdout]    |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 01s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: snap v1.0.0
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating network-devp2p/Cargo.toml from 2018 edition to 2021
[INFO] [stderr]    Migrating io/Cargo.toml from 2018 edition to 2021
[INFO] [stderr]    Migrating network/Cargo.toml from 2015 edition to 2018
[INFO] [stderr]    Migrating Cargo.toml from 2018 edition to 2021
[INFO] [stderr] note: Switching to Edition 2021 will enable the use of the version 2 feature resolver in Cargo.
[INFO] [stderr] This may cause some dependencies to be built with fewer features enabled than previously.
[INFO] [stderr] More information about the resolver changes may be found at https://doc.rust-lang.org/nightly/edition-guide/rust-2021/default-cargo-resolver.html
[INFO] [stderr] When building the following dependencies, the given features will no longer be used:
[INFO] [stderr] 
[INFO] [stderr]   semver v0.9.0 (as host dependency) removed features: serde
[INFO] [stderr]   serde v1.0.111 (as host dependency) removed features: alloc, derive, serde_derive
[INFO] [stderr] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> network/src/client_version.rs:38:35
[INFO] [stdout]    |
[INFO] [stdout] 38 | #[derive(Clone,Debug,PartialEq,Eq,Serialize)]
[INFO] [stdout]    |                                   ^--------
[INFO] [stdout]    |                                   |
[INFO] [stdout]    |                                   `Serialize` is not local
[INFO] [stdout]    |                                   move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_ParityClientData`
[INFO] [stdout] 39 | pub struct ParityClientData {
[INFO] [stdout]    |            ---------------- `ParityClientData` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> network/src/client_version.rs:101:35
[INFO] [stdout]     |
[INFO] [stdout] 101 | #[derive(Clone,Debug,Eq,PartialEq,Serialize)]
[INFO] [stdout]     |                                   ^--------
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   `Serialize` is not local
[INFO] [stdout]     |                                   move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_ClientVersion`
[INFO] [stdout] 102 | pub enum ClientVersion {
[INFO] [stdout]     |          ------------- `ClientVersion` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `protocol` is never read
[INFO] [stdout]    --> network-devp2p/src/connection.rs:265:6
[INFO] [stdout]     |
[INFO] [stdout] 264 | pub struct Packet {
[INFO] [stdout]     |            ------ field in this struct
[INFO] [stdout] 265 |     pub protocol: u16,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `peer_type` is never read
[INFO] [stdout]    --> network-devp2p/src/node_table.rs:194:6
[INFO] [stdout]     |
[INFO] [stdout] 191 | pub struct Node {
[INFO] [stdout]     |            ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 194 |     pub peer_type: PeerType,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Node` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_global_s` is never used
[INFO] [stdout]   --> network-devp2p/src/ip_utils.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub trait SocketAddrExt {
[INFO] [stdout]    |           ------------- method in this trait
[INFO] [stdout] 38 |     /// Returns true if the address appears to be globally routable.
[INFO] [stdout] 39 |     fn is_global_s(&self) -> bool;
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> network-devp2p/src/connection.rs:375:3
[INFO] [stdout]     |
[INFO] [stdout] 375 |         &mut packet[..HEADER_LEN].copy_from_slice(&mut header);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 375 |         let _ = &mut packet[..HEADER_LEN].copy_from_slice(&mut header);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> network-devp2p/src/connection.rs:379:3
[INFO] [stdout]     |
[INFO] [stdout] 379 |         &mut packet[32..32 + len].copy_from_slice(payload);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 379 |         let _ = &mut packet[32..32 + len].copy_from_slice(payload);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> network-devp2p/src/connection.rs:450:3
[INFO] [stdout]     |
[INFO] [stdout] 450 |         &mut enc[..].copy_from_slice(prev.as_bytes());
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 450 |         let _ = &mut enc[..].copy_from_slice(prev.as_bytes());
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this creates a dangling pointer because temporary `[u16; 8]` is dropped at end of statement
[INFO] [stdout]    --> network-devp2p/src/node_table.rs:101:42
[INFO] [stdout]     |
[INFO] [stdout] 101 |                 let o: *const u8 = a.ip().segments().as_ptr() as *const u8;
[INFO] [stdout]     |                                    ----------------- ^^^^^^ pointer created here
[INFO] [stdout]     |                                    |
[INFO] [stdout]     |                                    this `[u16; 8]` is dropped at end of statement
[INFO] [stdout]     |
[INFO] [stdout]     = help: bind the `[u16; 8]` to a variable such that it outlives the pointer returned by `as_ptr`
[INFO] [stdout]     = note: a dangling pointer is safe, but dereferencing one is undefined behavior
[INFO] [stdout]     = note: returning a pointer to a local variable will always result in a dangling pointer
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/reference/destructors.html>
[INFO] [stdout]     = note: `#[warn(dangling_pointers_from_temporaries)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> network-devp2p/src/node_table.rs:547:11
[INFO] [stdout]     |
[INFO] [stdout] 547 |     #[derive(Serialize, Deserialize)]
[INFO] [stdout]     |              ^--------
[INFO] [stdout]     |              |
[INFO] [stdout]     |              `Serialize` is not local
[INFO] [stdout]     |              move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_NodeTable`
[INFO] [stdout] 548 |     pub struct NodeTable {
[INFO] [stdout]     |                --------- `NodeTable` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> network-devp2p/src/node_table.rs:547:22
[INFO] [stdout]     |
[INFO] [stdout] 547 |     #[derive(Serialize, Deserialize)]
[INFO] [stdout]     |                         ^----------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `Deserialize` is not local
[INFO] [stdout]     |                         move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_NodeTable`
[INFO] [stdout] 548 |     pub struct NodeTable {
[INFO] [stdout]     |                --------- `NodeTable` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> network-devp2p/src/node_table.rs:552:11
[INFO] [stdout]     |
[INFO] [stdout] 552 |     #[derive(Serialize, Deserialize)]
[INFO] [stdout]     |              ^--------
[INFO] [stdout]     |              |
[INFO] [stdout]     |              `Serialize` is not local
[INFO] [stdout]     |              move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_NodeContact`
[INFO] [stdout] 553 |     pub enum NodeContact {
[INFO] [stdout]     |              ----------- `NodeContact` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> network-devp2p/src/node_table.rs:552:22
[INFO] [stdout]     |
[INFO] [stdout] 552 |     #[derive(Serialize, Deserialize)]
[INFO] [stdout]     |                         ^----------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `Deserialize` is not local
[INFO] [stdout]     |                         move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_NodeContact`
[INFO] [stdout] 553 |     pub enum NodeContact {
[INFO] [stdout]     |              ----------- `NodeContact` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> network-devp2p/src/node_table.rs:573:11
[INFO] [stdout]     |
[INFO] [stdout] 573 |     #[derive(Serialize, Deserialize)]
[INFO] [stdout]     |              ^--------
[INFO] [stdout]     |              |
[INFO] [stdout]     |              `Serialize` is not local
[INFO] [stdout]     |              move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Node`
[INFO] [stdout] 574 |     pub struct Node {
[INFO] [stdout]     |                ---- `Node` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> network-devp2p/src/node_table.rs:573:22
[INFO] [stdout]     |
[INFO] [stdout] 573 |     #[derive(Serialize, Deserialize)]
[INFO] [stdout]     |                         ^----------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `Deserialize` is not local
[INFO] [stdout]     |                         move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Node`
[INFO] [stdout] 574 |     pub struct Node {
[INFO] [stdout]     |                ---- `Node` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking ethcore-network v1.12.0 (/opt/rustwide/workdir/network)
[INFO] [stderr]     Checking ethcore-io v1.12.0 (/opt/rustwide/workdir/io)
[INFO] [stderr]     Checking bloom-p2p v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking ethcore-network-devp2p v1.12.0 (/opt/rustwide/workdir/network-devp2p)
[INFO] [stderr]    Migrating network/src/lib.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/main.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating network-devp2p/tests/tests.rs from 2021 edition to 2024
[INFO] [stderr] error: errors present after applying fixes to crate `bloom_p2p`
[INFO] [stderr]  --> src/rpc.rs
[INFO] [stderr]   = cause: error: expected item after attributes
[INFO] [stderr]              --> src/rpc.rs:36:1
[INFO] [stderr]               |
[INFO] [stderr]            36 | #[rpc] + use<>
[INFO] [stderr]               | ^^^^^^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: aborting due to 1 previous error
[INFO] [stderr] help: to report this as a bug, open an issue at https://github.com/rust-lang/rust/issues, quoting the full output of this command
[INFO] [stderr] help: to possibly apply more fixes, pass in the `--broken-code` flag
[INFO] [stderr] note: original diagnostics will follow:
[INFO] [stdout] warning: call to deprecated safe function `std::env::set_var` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/server.rs:222:5
[INFO] [stdout]     |
[INFO] [stdout] 222 |     env::set_var("RUST_LOG", log_level);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/newly-unsafe-functions.html>
[INFO] [stdout]     = note: `--force-warn deprecated-safe-2024` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: you can wrap the call in an `unsafe` block if you can guarantee that the environment access only happens in single-threaded code
[INFO] [stdout]     |
[INFO] [stdout] 222 +     // FIXME: Audit that the environment access only happens in single-threaded code.
[INFO] [stdout] 223 ~     unsafe { env::set_var("RUST_LOG", log_level) };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl jsonrpc_core::futures::Future<Item = rpc::Info, Error = RpcError>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]   --> src/rpc.rs:36:1
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[rpc]
[INFO] [stdout]    | ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]   --> src/rpc.rs:36:1
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[rpc]
[INFO] [stdout]    | ^
[INFO] [stdout]    = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]    = note: `--force-warn impl-trait-overcaptures` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout]    = note: this warning originates in the attribute macro `rpc` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[rpc] + use<>
[INFO] [stdout]    |        +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl jsonrpc_core::futures::Future<Item = rpc::Peers, Error = RpcError>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]   --> src/rpc.rs:36:1
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[rpc]
[INFO] [stdout]    | ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]   --> src/rpc.rs:36:1
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[rpc]
[INFO] [stdout]    | ^
[INFO] [stdout]    = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `rpc` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[rpc] + use<>
[INFO] [stdout]    |        +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl jsonrpc_core::futures::Future<Item = bool, Error = RpcError>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]   --> src/rpc.rs:36:1
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[rpc]
[INFO] [stdout]    | ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]   --> src/rpc.rs:36:1
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[rpc]
[INFO] [stdout]    | ^
[INFO] [stdout]    = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `rpc` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[rpc] + use<>
[INFO] [stdout]    |        +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl jsonrpc_core::futures::Future<Item = server::TxPool, Error = RpcError>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]   --> src/rpc.rs:36:1
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[rpc]
[INFO] [stdout]    | ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]   --> src/rpc.rs:36:1
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[rpc]
[INFO] [stdout]    | ^
[INFO] [stdout]    = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `rpc` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[rpc] + use<>
[INFO] [stdout]    |        +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl jsonrpc_core::futures::Future<Item = (), Error = RpcError>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]   --> src/rpc.rs:36:1
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[rpc]
[INFO] [stdout]    | ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]   --> src/rpc.rs:36:1
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[rpc]
[INFO] [stdout]    | ^
[INFO] [stdout]    = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `rpc` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[rpc] + use<>
[INFO] [stdout]    |        +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl jsonrpc_core::futures::Future<Item = Vec<rpc::Node>, Error = RpcError>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]   --> src/rpc.rs:36:1
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[rpc]
[INFO] [stdout]    | ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]   --> src/rpc.rs:36:1
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[rpc]
[INFO] [stdout]    | ^
[INFO] [stdout]    = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `rpc` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[rpc] + use<>
[INFO] [stdout]    |        +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl jsonrpc_core::futures::Future<Item = TypedSubscriptionStream<rpc::Peers>, Error = RpcError>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]   --> src/rpc.rs:36:1
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[rpc]
[INFO] [stdout]    | ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]   --> src/rpc.rs:36:1
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[rpc]
[INFO] [stdout]    | ^
[INFO] [stdout]    = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `rpc` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[rpc] + use<>
[INFO] [stdout]    |        +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating network-devp2p/src/lib.rs from 2021 edition to 2024
[INFO] [stderr] error: errors present after applying fixes to crate `bloom_p2p`
[INFO] [stdout] warning: call to deprecated safe function `std::env::set_var` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/server.rs:222:5
[INFO] [stdout]     |
[INFO] [stdout] 222 |     env::set_var("RUST_LOG", log_level);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/newly-unsafe-functions.html>
[INFO] [stdout]     = note: `--force-warn deprecated-safe-2024` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: you can wrap the call in an `unsafe` block if you can guarantee that the environment access only happens in single-threaded code
[INFO] [stdout]     |
[INFO] [stdout] 222 +     // FIXME: Audit that the environment access only happens in single-threaded code.
[INFO] [stdout] 223 ~     unsafe { env::set_var("RUST_LOG", log_level) };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]  --> src/rpc.rs
[INFO] [stdout] warning: `impl jsonrpc_core::futures::Future<Item = rpc::Info, Error = RpcError>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]   --> src/rpc.rs:36:1
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[rpc]
[INFO] [stdout]    | ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]   --> src/rpc.rs:36:1
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[rpc]
[INFO] [stdout]    | ^
[INFO] [stdout]    = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]    = note: `--force-warn impl-trait-overcaptures` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout]    = note: this warning originates in the attribute macro `rpc` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[rpc] + use<>
[INFO] [stdout]    |        +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]   = cause: error: expected item after attributes
[INFO] [stdout] warning: `impl jsonrpc_core::futures::Future<Item = rpc::Peers, Error = RpcError>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]   --> src/rpc.rs:36:1
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[rpc]
[INFO] [stdout]    | ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]   --> src/rpc.rs:36:1
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[rpc]
[INFO] [stdout]    | ^
[INFO] [stdout]    = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `rpc` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[rpc] + use<>
[INFO] [stdout]    |        +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]              --> src/rpc.rs:36:1
[INFO] [stdout] warning: `impl jsonrpc_core::futures::Future<Item = bool, Error = RpcError>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]   --> src/rpc.rs:36:1
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[rpc]
[INFO] [stdout]    | ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]   --> src/rpc.rs:36:1
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[rpc]
[INFO] [stdout]    | ^
[INFO] [stdout]    = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `rpc` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[rpc] + use<>
[INFO] [stdout]    |        +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |
[INFO] [stdout] warning: `impl jsonrpc_core::futures::Future<Item = server::TxPool, Error = RpcError>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]   --> src/rpc.rs:36:1
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[rpc]
[INFO] [stdout]    | ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]   --> src/rpc.rs:36:1
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[rpc]
[INFO] [stdout]    | ^
[INFO] [stdout]    = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `rpc` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[rpc] + use<>
[INFO] [stdout]    |        +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            36 | #[rpc] + use<>
[INFO] [stdout] warning: `impl jsonrpc_core::futures::Future<Item = (), Error = RpcError>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]   --> src/rpc.rs:36:1
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[rpc]
[INFO] [stdout]    | ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]   --> src/rpc.rs:36:1
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[rpc]
[INFO] [stdout]    | ^
[INFO] [stdout]    = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `rpc` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[rpc] + use<>
[INFO] [stdout]    |        +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               | ^^^^^^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: aborting due to 1 previous error
[INFO] [stderr] help: to report this as a bug, open an issue at https://github.com/rust-lang/rust/issues, quoting the full output of this command
[INFO] [stderr] help: to possibly apply more fixes, pass in the `--broken-code` flag
[INFO] [stderr] note: original diagnostics will follow:
[INFO] [stdout] warning: `impl jsonrpc_core::futures::Future<Item = Vec<rpc::Node>, Error = RpcError>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]   --> src/rpc.rs:36:1
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[rpc]
[INFO] [stdout]    | ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]   --> src/rpc.rs:36:1
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[rpc]
[INFO] [stdout]    | ^
[INFO] [stdout]    = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `rpc` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[rpc] + use<>
[INFO] [stdout]    |        +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl jsonrpc_core::futures::Future<Item = TypedSubscriptionStream<rpc::Peers>, Error = RpcError>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]   --> src/rpc.rs:36:1
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[rpc]
[INFO] [stdout]    | ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]   --> src/rpc.rs:36:1
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[rpc]
[INFO] [stdout]    | ^
[INFO] [stdout]    = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `rpc` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[rpc] + use<>
[INFO] [stdout]    |        +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> network-devp2p/src/host.rs:689:9
[INFO] [stdout]      |
[INFO] [stdout]  682 |         let mut sessions = self.sessions.write();
[INFO] [stdout]      |             ------------
[INFO] [stdout]      |             |
[INFO] [stdout]      |             `sessions` calls a custom destructor
[INFO] [stdout]      |             `sessions` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  689 |         match Session::new(io, socket, key, id, &nonce, &self.info.read()) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----------------^
[INFO] [stdout]      |               |                                          |
[INFO] [stdout]      |               |                                          this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |               |                                          up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  699 |     }
[INFO] [stdout]      |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/parity-crypto-0.6.2/src/publickey/secret_key.rs:29:1
[INFO] [stdout]      |
[INFO] [stdout]   29 | impl Drop for Secret {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/os/fd/owned.rs:196:0
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.3.4/src/rwlock.rs:907:1
[INFO] [stdout]      |
[INFO] [stdout]  907 | impl<'a, R: RawRwLock + 'a, T: ?Sized + 'a> Drop for RwLockReadGuard<'a, R, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `sessions` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.3.4/src/rwlock.rs:1109:1
[INFO] [stdout]      |
[INFO] [stdout] 1109 | impl<'a, R: RawRwLock + 'a, T: ?Sized + 'a> Drop for RwLockWriteGuard<'a, R, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]        Fixed network-devp2p/src/service.rs (1 fix)
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> network-devp2p/src/host.rs:844:14
[INFO] [stdout]      |
[INFO] [stdout]  747 |                     let session_result = session.lock().readable(io, &self.info.read());
[INFO] [stdout]      |                                          --------------               ----------------
[INFO] [stdout]      |                                          |                            |
[INFO] [stdout]      |                                          |                            this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                          |                            `#2` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                          this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                          `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  770 |                             let reserved_nodes = self.reserved_nodes.read();
[INFO] [stdout]      |                                 --------------
[INFO] [stdout]      |                                 |
[INFO] [stdout]      |                                 `reserved_nodes` calls a custom destructor
[INFO] [stdout]      |                                 `reserved_nodes` will be dropped later as of Edition 2024
[INFO] [stdout]  771 |                             let mut s = session.lock();
[INFO] [stdout]      |                                 -----
[INFO] [stdout]      |                                 |
[INFO] [stdout]      |                                 `s` calls a custom destructor
[INFO] [stdout]      |                                 `s` will be dropped later as of Edition 2024
[INFO] [stdout]  772 |                             let (min_peers, mut max_peers, reserved_only, self_id) = {
[INFO] [stdout]  773 |                                 let info = self.info.read();
[INFO] [stdout]      |                                     ----
[INFO] [stdout]      |                                     |
[INFO] [stdout]      |                                     `info` calls a custom destructor
[INFO] [stdout]      |                                     `info` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  819 |                                     let mut nodes = self.nodes.write();
[INFO] [stdout]      |                                         ---------
[INFO] [stdout]      |                                         |
[INFO] [stdout]      |                                         `nodes` calls a custom destructor
[INFO] [stdout]      |                                         `nodes` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  822 |                                         let mut discovery = self.discovery.lock();
[INFO] [stdout]      |                                             -------------
[INFO] [stdout]      |                                             |
[INFO] [stdout]      |                                             `discovery` calls a custom destructor
[INFO] [stdout]      |                                             `discovery` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  831 |                             self.nodes.write().note_success(&id);
[INFO] [stdout]      |                             ------------------
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                             `#3` will be dropped later as of Edition 2024
[INFO] [stdout]  832 |
[INFO] [stdout]  833 |                             for (p, _) in self.handlers.read().iter() {
[INFO] [stdout]      |                                           --------------------
[INFO] [stdout]      |                                           |
[INFO] [stdout]      |                                           this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                                           `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  844 |                             match self.handlers.read().get(&protocol) {
[INFO] [stdout]      |                                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                   |
[INFO] [stdout]      |                                   this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]      |                                   up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  848 |                         },
[INFO] [stdout]      |                         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.3.4/src/rwlock.rs:907:1
[INFO] [stdout]      |
[INFO] [stdout]  907 | impl<'a, R: RawRwLock + 'a, T: ?Sized + 'a> Drop for RwLockReadGuard<'a, R, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.3.4/src/mutex.rs:490:1
[INFO] [stdout]      |
[INFO] [stdout]  490 | impl<'a, R: RawMutex + 'a, T: ?Sized + 'a> Drop for MutexGuard<'a, R, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.3.4/src/rwlock.rs:907:1
[INFO] [stdout]      |
[INFO] [stdout]  907 | impl<'a, R: RawRwLock + 'a, T: ?Sized + 'a> Drop for RwLockReadGuard<'a, R, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `reserved_nodes` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.3.4/src/rwlock.rs:907:1
[INFO] [stdout]      |
[INFO] [stdout]  907 | impl<'a, R: RawRwLock + 'a, T: ?Sized + 'a> Drop for RwLockReadGuard<'a, R, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `s` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.3.4/src/mutex.rs:490:1
[INFO] [stdout]      |
[INFO] [stdout]  490 | impl<'a, R: RawMutex + 'a, T: ?Sized + 'a> Drop for MutexGuard<'a, R, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `info` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.3.4/src/rwlock.rs:907:1
[INFO] [stdout]      |
[INFO] [stdout]  907 | impl<'a, R: RawRwLock + 'a, T: ?Sized + 'a> Drop for RwLockReadGuard<'a, R, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `nodes` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.3.4/src/rwlock.rs:1109:1
[INFO] [stdout]      |
[INFO] [stdout] 1109 | impl<'a, R: RawRwLock + 'a, T: ?Sized + 'a> Drop for RwLockWriteGuard<'a, R, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `discovery` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.3.4/src/mutex.rs:490:1
[INFO] [stdout]      |
[INFO] [stdout]  490 | impl<'a, R: RawMutex + 'a, T: ?Sized + 'a> Drop for MutexGuard<'a, R, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.3.4/src/rwlock.rs:1109:1
[INFO] [stdout]      |
[INFO] [stdout] 1109 | impl<'a, R: RawRwLock + 'a, T: ?Sized + 'a> Drop for RwLockWriteGuard<'a, R, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.3.4/src/rwlock.rs:907:1
[INFO] [stdout]      |
[INFO] [stdout]  907 | impl<'a, R: RawRwLock + 'a, T: ?Sized + 'a> Drop for RwLockReadGuard<'a, R, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating io/src/lib.rs from 2021 edition to 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> network-devp2p/src/host.rs:744:26
[INFO] [stdout]     |
[INFO] [stdout] 742 |         let session = self.sessions.read().get(token).cloned();
[INFO] [stdout]     |             -------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `session` calls a custom destructor
[INFO] [stdout]     |             `session` will be dropped later as of Edition 2024
[INFO] [stdout] 743 |         let mut ready_id = None;
[INFO] [stdout] 744 |         if let Some(session) = session.clone() {
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 890 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/parity-crypto-0.6.2/src/publickey/secret_key.rs:29:1
[INFO] [stdout]     |
[INFO] [stdout]  29 | impl Drop for Secret {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/os/fd/owned.rs:196:0
[INFO] [stdout] note: `session` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/parity-crypto-0.6.2/src/publickey/secret_key.rs:29:1
[INFO] [stdout]     |
[INFO] [stdout]  29 | impl Drop for Secret {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `session` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/os/fd/owned.rs:196:0
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]        Fixed network-devp2p/src/host.rs (1 fix)
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> network-devp2p/src/host.rs:962:27
[INFO] [stdout]     |
[INFO] [stdout] 961 |             let sessions = self.sessions.read();
[INFO] [stdout]     |                 --------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `sessions` calls a custom destructor
[INFO] [stdout]     |                 `sessions` will be dropped later as of Edition 2024
[INFO] [stdout] 962 |             if let Some(session) = sessions.get(token).cloned() {
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                    |
[INFO] [stdout]     |                                    this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                    up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 978 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/parity-crypto-0.6.2/src/publickey/secret_key.rs:29:1
[INFO] [stdout]     |
[INFO] [stdout]  29 | impl Drop for Secret {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/os/fd/owned.rs:196:0
[INFO] [stdout] note: `sessions` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.3.4/src/rwlock.rs:907:1
[INFO] [stdout]     |
[INFO] [stdout] 907 | impl<'a, R: RawRwLock + 'a, T: ?Sized + 'a> Drop for RwLockReadGuard<'a, R, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> network-devp2p/src/host.rs:986:21
[INFO] [stdout]     |
[INFO] [stdout] 985 |             let reserved = self.reserved_nodes.read();
[INFO] [stdout]     |                 --------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `reserved` calls a custom destructor
[INFO] [stdout]     |                 `reserved` will be dropped later as of Edition 2024
[INFO] [stdout] 986 |             if let Some(h) = self.handlers.read().get(&p) {
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                              up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 989 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.3.4/src/rwlock.rs:907:1
[INFO] [stdout]     |
[INFO] [stdout] 907 | impl<'a, R: RawRwLock + 'a, T: ?Sized + 'a> Drop for RwLockReadGuard<'a, R, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `reserved` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.3.4/src/rwlock.rs:907:1
[INFO] [stdout]     |
[INFO] [stdout] 907 | impl<'a, R: RawRwLock + 'a, T: ?Sized + 'a> Drop for RwLockReadGuard<'a, R, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> network-devp2p/src/host.rs:1206:31
[INFO] [stdout]      |
[INFO] [stdout] 1205 |                 let mut connections = self.sessions.write();
[INFO] [stdout]      |                     ---------------
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     `connections` calls a custom destructor
[INFO] [stdout]      |                     `connections` will be dropped later as of Edition 2024
[INFO] [stdout] 1206 |                 if let Some(connection) = connections.get(stream).cloned() {
[INFO] [stdout]      |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                           |
[INFO] [stdout]      |                                           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                           up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1213 |             }
[INFO] [stdout]      |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/parity-crypto-0.6.2/src/publickey/secret_key.rs:29:1
[INFO] [stdout]      |
[INFO] [stdout]   29 | impl Drop for Secret {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/os/fd/owned.rs:196:0
[INFO] [stdout] note: `connections` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.3.4/src/rwlock.rs:1109:1
[INFO] [stdout]      |
[INFO] [stdout] 1109 | impl<'a, R: RawRwLock + 'a, T: ?Sized + 'a> Drop for RwLockWriteGuard<'a, R, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> io/src/service_mio.rs:395:24
[INFO] [stdout]     |
[INFO] [stdout] 395 |                         if let Some(h) = handlers.read().get(id) {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                          |
[INFO] [stdout]     |                                          this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                          up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 396 |                             let handler = h.clone();
[INFO] [stdout]     |                                 -------
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 `handler` calls a custom destructor
[INFO] [stdout]     |                                 `handler` will be dropped later as of Edition 2024
[INFO] [stdout] 397 |                             handler.message(&IoContext::new(self.clone(), id), &message);
[INFO] [stdout]     |                                              --------------------------------
[INFO] [stdout]     |                                              |
[INFO] [stdout]     |                                              this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                              `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 398 |                         }
[INFO] [stdout] 399 |                     }
[INFO] [stdout]     |                     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.3.4/src/rwlock.rs:907:1
[INFO] [stdout]     |
[INFO] [stdout] 907 | impl<'a, R: RawRwLock + 'a, T: ?Sized + 'a> Drop for RwLockReadGuard<'a, R, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `handler` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/mio-0.6.22/src/channel.rs:218:1
[INFO] [stdout]     |
[INFO] [stdout] 218 | impl Drop for SenderCtl {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/mpmc/mod.rs:657:0
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 07s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: snap v1.0.0
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] [stderr] crater-edition-check: ethcore-network-devp2p v1.12.0 (/opt/rustwide/workdir/network-devp2p) updating edition from 2021 to 2024
[INFO] [stderr] crater-edition-check: ethcore-io v1.12.0 (/opt/rustwide/workdir/io) updating edition from 2021 to 2024
[INFO] [stderr] crater-edition-check: ethcore-network v1.12.0 (/opt/rustwide/workdir/network) updating edition from 2018 to 2021
[INFO] [stderr] crater-edition-check: bloom-p2p v0.1.0 (/opt/rustwide/workdir) updating edition from 2021 to 2024
[INFO] [stderr]     Checking ethcore-io v1.12.0 (/opt/rustwide/workdir/io)
[INFO] [stdout] warning: field `data` is never read
[INFO] [stdout]    --> io/src/lib.rs:216:4
[INFO] [stdout]     |
[INFO] [stdout] 215 |         struct MyMessage {
[INFO] [stdout]     |                --------- field in this struct
[INFO] [stdout] 216 |             data: u32
[INFO] [stdout]     |             ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MyMessage` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `data` is never read
[INFO] [stdout]    --> io/src/lib.rs:245:4
[INFO] [stdout]     |
[INFO] [stdout] 244 |         struct MyMessage {
[INFO] [stdout]     |                --------- field in this struct
[INFO] [stdout] 245 |             data: u32
[INFO] [stdout]     |             ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MyMessage` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking ethcore-network v1.12.0 (/opt/rustwide/workdir/network)
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> network/src/client_version.rs:38:35
[INFO] [stdout]    |
[INFO] [stdout] 38 | #[derive(Clone,Debug,PartialEq,Eq,Serialize)]
[INFO] [stdout]    |                                   ^--------
[INFO] [stdout]    |                                   |
[INFO] [stdout]    |                                   `Serialize` is not local
[INFO] [stdout]    |                                   move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_ParityClientData`
[INFO] [stdout] 39 | pub struct ParityClientData {
[INFO] [stdout]    |            ---------------- `ParityClientData` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> network/src/client_version.rs:101:35
[INFO] [stdout]     |
[INFO] [stdout] 101 | #[derive(Clone,Debug,Eq,PartialEq,Serialize)]
[INFO] [stdout]     |                                   ^--------
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   `Serialize` is not local
[INFO] [stdout]     |                                   move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_ClientVersion`
[INFO] [stdout] 102 | pub enum ClientVersion {
[INFO] [stdout]     |          ------------- `ClientVersion` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]    --> network/src/client_version.rs:249:1
[INFO] [stdout]     |
[INFO] [stdout] 249 | pub mod tests {
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]    --> network/src/client_version.rs:17:9
[INFO] [stdout]     |
[INFO] [stdout]  17 | #![warn(missing_docs)]
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> network/src/client_version.rs:303:2
[INFO] [stdout]     |
[INFO] [stdout] 303 |     pub fn client_version_when_from_empty_string_then_default() {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> network/src/client_version.rs:310:2
[INFO] [stdout]     |
[INFO] [stdout] 310 |     pub fn get_number_from_version_when_valid_then_number() {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> network/src/client_version.rs:317:2
[INFO] [stdout]     |
[INFO] [stdout] 317 |     pub fn client_version_when_str_parity_format_and_valid_then_all_fields_match() {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> network/src/client_version.rs:331:2
[INFO] [stdout]     |
[INFO] [stdout] 331 |     pub fn client_version_when_str_parity_long_format_and_valid_then_all_fields_match() {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> network/src/client_version.rs:346:2
[INFO] [stdout]     |
[INFO] [stdout] 346 |     pub fn client_version_when_str_parity_long_format_and_valid_and_identity_multiple_tokens_then_all_fields_match() {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> network/src/client_version.rs:361:2
[INFO] [stdout]     |
[INFO] [stdout] 361 |     pub fn client_version_when_string_parity_format_and_valid_then_all_fields_match() {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> network/src/client_version.rs:375:2
[INFO] [stdout]     |
[INFO] [stdout] 375 |     pub fn client_version_when_parity_format_and_invalid_then_equals_parity_unknown_client_version_string() {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> network/src/client_version.rs:392:2
[INFO] [stdout]     |
[INFO] [stdout] 392 |     pub fn client_version_when_parity_format_without_identity_and_missing_compiler_field_then_equals_parity_unknown_client_version_string() {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> network/src/client_version.rs:408:2
[INFO] [stdout]     |
[INFO] [stdout] 408 |     pub fn client_version_when_parity_format_with_identity_and_missing_compiler_field_then_equals_parity_unknown_client_version_string() {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> network/src/client_version.rs:425:2
[INFO] [stdout]     |
[INFO] [stdout] 425 |     pub fn client_version_when_not_parity_format_and_valid_then_other_with_client_version_string() {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> network/src/client_version.rs:434:2
[INFO] [stdout]     |
[INFO] [stdout] 434 |     pub fn client_version_when_parity_format_and_valid_then_to_string_equal() {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> network/src/client_version.rs:443:2
[INFO] [stdout]     |
[INFO] [stdout] 443 |     pub fn client_version_when_other_then_to_string_equal_input_string() {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> network/src/client_version.rs:452:2
[INFO] [stdout]     |
[INFO] [stdout] 452 |     pub fn client_capabilities_when_parity_old_version_then_handles_large_requests_false() {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> network/src/client_version.rs:461:2
[INFO] [stdout]     |
[INFO] [stdout] 461 |     pub fn client_capabilities_when_parity_beta_version_then_not_handles_large_requests_true() {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> network/src/client_version.rs:476:2
[INFO] [stdout]     |
[INFO] [stdout] 476 |     pub fn client_version_when_to_owned_then_both_objects_equal() {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> network/src/client_version.rs:38:35
[INFO] [stdout]    |
[INFO] [stdout] 38 | #[derive(Clone,Debug,PartialEq,Eq,Serialize)]
[INFO] [stdout]    |                                   ^--------
[INFO] [stdout]    |                                   |
[INFO] [stdout]    |                                   `Serialize` is not local
[INFO] [stdout]    |                                   move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_ParityClientData`
[INFO] [stdout] 39 | pub struct ParityClientData {
[INFO] [stdout]    |            ---------------- `ParityClientData` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> network/src/client_version.rs:101:35
[INFO] [stdout]     |
[INFO] [stdout] 101 | #[derive(Clone,Debug,Eq,PartialEq,Serialize)]
[INFO] [stdout]     |                                   ^--------
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   `Serialize` is not local
[INFO] [stdout]     |                                   move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_ClientVersion`
[INFO] [stdout] 102 | pub enum ClientVersion {
[INFO] [stdout]     |          ------------- `ClientVersion` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking ethcore-network-devp2p v1.12.0 (/opt/rustwide/workdir/network-devp2p)
[INFO] [stdout] warning: field `protocol` is never read
[INFO] [stdout]    --> network-devp2p/src/connection.rs:265:6
[INFO] [stdout]     |
[INFO] [stdout] 264 | pub struct Packet {
[INFO] [stdout]     |            ------ field in this struct
[INFO] [stdout] 265 |     pub protocol: u16,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `peer_type` is never read
[INFO] [stdout]    --> network-devp2p/src/node_table.rs:194:6
[INFO] [stdout]     |
[INFO] [stdout] 191 | pub struct Node {
[INFO] [stdout]     |            ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 194 |     pub peer_type: PeerType,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Node` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_global_s` is never used
[INFO] [stdout]   --> network-devp2p/src/ip_utils.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub trait SocketAddrExt {
[INFO] [stdout]    |           ------------- method in this trait
[INFO] [stdout] 38 |     /// Returns true if the address appears to be globally routable.
[INFO] [stdout] 39 |     fn is_global_s(&self) -> bool;
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> network-devp2p/src/connection.rs:375:3
[INFO] [stdout]     |
[INFO] [stdout] 375 |         &mut packet[..HEADER_LEN].copy_from_slice(&mut header);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 375 |         let _ = &mut packet[..HEADER_LEN].copy_from_slice(&mut header);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> network-devp2p/src/connection.rs:379:3
[INFO] [stdout]     |
[INFO] [stdout] 379 |         &mut packet[32..32 + len].copy_from_slice(payload);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 379 |         let _ = &mut packet[32..32 + len].copy_from_slice(payload);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> network-devp2p/src/connection.rs:450:3
[INFO] [stdout]     |
[INFO] [stdout] 450 |         &mut enc[..].copy_from_slice(prev.as_bytes());
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 450 |         let _ = &mut enc[..].copy_from_slice(prev.as_bytes());
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this creates a dangling pointer because temporary `[u16; 8]` is dropped at end of statement
[INFO] [stdout]    --> network-devp2p/src/node_table.rs:101:42
[INFO] [stdout]     |
[INFO] [stdout] 101 |                 let o: *const u8 = a.ip().segments().as_ptr() as *const u8;
[INFO] [stdout]     |                                    ----------------- ^^^^^^ pointer created here
[INFO] [stdout]     |                                    |
[INFO] [stdout]     |                                    this `[u16; 8]` is dropped at end of statement
[INFO] [stdout]     |
[INFO] [stdout]     = help: bind the `[u16; 8]` to a variable such that it outlives the pointer returned by `as_ptr`
[INFO] [stdout]     = note: a dangling pointer is safe, but dereferencing one is undefined behavior
[INFO] [stdout]     = note: returning a pointer to a local variable will always result in a dangling pointer
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/reference/destructors.html>
[INFO] [stdout]     = note: `#[warn(dangling_pointers_from_temporaries)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> network-devp2p/src/node_table.rs:547:11
[INFO] [stdout]     |
[INFO] [stdout] 547 |     #[derive(Serialize, Deserialize)]
[INFO] [stdout]     |              ^--------
[INFO] [stdout]     |              |
[INFO] [stdout]     |              `Serialize` is not local
[INFO] [stdout]     |              move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_NodeTable`
[INFO] [stdout] 548 |     pub struct NodeTable {
[INFO] [stdout]     |                --------- `NodeTable` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> network-devp2p/src/node_table.rs:547:22
[INFO] [stdout]     |
[INFO] [stdout] 547 |     #[derive(Serialize, Deserialize)]
[INFO] [stdout]     |                         ^----------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `Deserialize` is not local
[INFO] [stdout]     |                         move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_NodeTable`
[INFO] [stdout] 548 |     pub struct NodeTable {
[INFO] [stdout]     |                --------- `NodeTable` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> network-devp2p/src/node_table.rs:552:11
[INFO] [stdout]     |
[INFO] [stdout] 552 |     #[derive(Serialize, Deserialize)]
[INFO] [stdout]     |              ^--------
[INFO] [stdout]     |              |
[INFO] [stdout]     |              `Serialize` is not local
[INFO] [stdout]     |              move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_NodeContact`
[INFO] [stdout] 553 |     pub enum NodeContact {
[INFO] [stdout]     |              ----------- `NodeContact` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> network-devp2p/src/node_table.rs:552:22
[INFO] [stdout]     |
[INFO] [stdout] 552 |     #[derive(Serialize, Deserialize)]
[INFO] [stdout]     |                         ^----------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `Deserialize` is not local
[INFO] [stdout]     |                         move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_NodeContact`
[INFO] [stdout] 553 |     pub enum NodeContact {
[INFO] [stdout]     |              ----------- `NodeContact` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> network-devp2p/src/node_table.rs:573:11
[INFO] [stdout]     |
[INFO] [stdout] 573 |     #[derive(Serialize, Deserialize)]
[INFO] [stdout]     |              ^--------
[INFO] [stdout]     |              |
[INFO] [stdout]     |              `Serialize` is not local
[INFO] [stdout]     |              move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Node`
[INFO] [stdout] 574 |     pub struct Node {
[INFO] [stdout]     |                ---- `Node` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> network-devp2p/src/node_table.rs:573:22
[INFO] [stdout]     |
[INFO] [stdout] 573 |     #[derive(Serialize, Deserialize)]
[INFO] [stdout]     |                         ^----------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `Deserialize` is not local
[INFO] [stdout]     |                         move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Node`
[INFO] [stdout] 574 |     pub struct Node {
[INFO] [stdout]     |                ---- `Node` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking bloom-p2p v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `serde_json`
[INFO] [stdout]  --> src/commands/client_cmd.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use serde_json;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Ipv4Addr`
[INFO] [stdout]  --> src/commands/client_cmd.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::net::{Ipv4Addr, SocketAddr, SocketAddrV4};
[INFO] [stdout]   |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Tx_pool` should have an upper camel case name
[INFO] [stdout]   --> src/commands/client_cmd.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     Tx_pool {},
[INFO] [stdout]    |     ^^^^^^^ help: convert the identifier to upper camel case: `TxPool`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Node_buckets` should have an upper camel case name
[INFO] [stdout]   --> src/commands/client_cmd.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |     Node_buckets {},
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `NodeBuckets`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Send_tx` should have an upper camel case name
[INFO] [stdout]   --> src/commands/client_cmd.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     Send_tx {
[INFO] [stdout]    |     ^^^^^^^ help: convert the identifier to upper camel case: `SendTx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Peers_sub` should have an upper camel case name
[INFO] [stdout]   --> src/commands/client_cmd.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 |     Peers_sub {
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to upper camel case: `PeersSub`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Peers_unsub` should have an upper camel case name
[INFO] [stdout]   --> src/commands/client_cmd.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 44 |     Peers_unsub {
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `PeersUnsub`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json`
[INFO] [stdout]  --> src/commands/client_cmd.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use serde_json;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Ipv4Addr`
[INFO] [stdout]  --> src/commands/client_cmd.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::net::{Ipv4Addr, SocketAddr, SocketAddrV4};
[INFO] [stdout]   |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Tx_pool` should have an upper camel case name
[INFO] [stdout]   --> src/commands/client_cmd.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     Tx_pool {},
[INFO] [stdout]    |     ^^^^^^^ help: convert the identifier to upper camel case: `TxPool`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Node_buckets` should have an upper camel case name
[INFO] [stdout]   --> src/commands/client_cmd.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |     Node_buckets {},
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `NodeBuckets`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Send_tx` should have an upper camel case name
[INFO] [stdout]   --> src/commands/client_cmd.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     Send_tx {
[INFO] [stdout]    |     ^^^^^^^ help: convert the identifier to upper camel case: `SendTx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Peers_sub` should have an upper camel case name
[INFO] [stdout]   --> src/commands/client_cmd.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 |     Peers_sub {
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to upper camel case: `PeersSub`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Peers_unsub` should have an upper camel case name
[INFO] [stdout]   --> src/commands/client_cmd.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 44 |     Peers_unsub {
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `PeersUnsub`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `protocol` is never read
[INFO] [stdout]    --> network-devp2p/src/connection.rs:265:6
[INFO] [stdout]     |
[INFO] [stdout] 264 | pub struct Packet {
[INFO] [stdout]     |            ------ field in this struct
[INFO] [stdout] 265 |     pub protocol: u16,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `peer_type` is never read
[INFO] [stdout]    --> network-devp2p/src/node_table.rs:194:6
[INFO] [stdout]     |
[INFO] [stdout] 191 | pub struct Node {
[INFO] [stdout]     |            ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 194 |     pub peer_type: PeerType,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Node` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> network-devp2p/src/connection.rs:375:3
[INFO] [stdout]     |
[INFO] [stdout] 375 |         &mut packet[..HEADER_LEN].copy_from_slice(&mut header);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 375 |         let _ = &mut packet[..HEADER_LEN].copy_from_slice(&mut header);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> network-devp2p/src/connection.rs:379:3
[INFO] [stdout]     |
[INFO] [stdout] 379 |         &mut packet[32..32 + len].copy_from_slice(payload);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 379 |         let _ = &mut packet[32..32 + len].copy_from_slice(payload);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> network-devp2p/src/connection.rs:450:3
[INFO] [stdout]     |
[INFO] [stdout] 450 |         &mut enc[..].copy_from_slice(prev.as_bytes());
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 450 |         let _ = &mut enc[..].copy_from_slice(prev.as_bytes());
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this creates a dangling pointer because temporary `[u16; 8]` is dropped at end of statement
[INFO] [stdout]    --> network-devp2p/src/node_table.rs:101:42
[INFO] [stdout]     |
[INFO] [stdout] 101 |                 let o: *const u8 = a.ip().segments().as_ptr() as *const u8;
[INFO] [stdout]     |                                    ----------------- ^^^^^^ pointer created here
[INFO] [stdout]     |                                    |
[INFO] [stdout]     |                                    this `[u16; 8]` is dropped at end of statement
[INFO] [stdout]     |
[INFO] [stdout]     = help: bind the `[u16; 8]` to a variable such that it outlives the pointer returned by `as_ptr`
[INFO] [stdout]     = note: a dangling pointer is safe, but dereferencing one is undefined behavior
[INFO] [stdout]     = note: returning a pointer to a local variable will always result in a dangling pointer
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/reference/destructors.html>
[INFO] [stdout]     = note: `#[warn(dangling_pointers_from_temporaries)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> network-devp2p/src/node_table.rs:547:11
[INFO] [stdout]     |
[INFO] [stdout] 547 |     #[derive(Serialize, Deserialize)]
[INFO] [stdout]     |              ^--------
[INFO] [stdout]     |              |
[INFO] [stdout]     |              `Serialize` is not local
[INFO] [stdout]     |              move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_NodeTable`
[INFO] [stdout] 548 |     pub struct NodeTable {
[INFO] [stdout]     |                --------- `NodeTable` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> network-devp2p/src/node_table.rs:547:22
[INFO] [stdout]     |
[INFO] [stdout] 547 |     #[derive(Serialize, Deserialize)]
[INFO] [stdout]     |                         ^----------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `Deserialize` is not local
[INFO] [stdout]     |                         move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_NodeTable`
[INFO] [stdout] 548 |     pub struct NodeTable {
[INFO] [stdout]     |                --------- `NodeTable` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> network-devp2p/src/node_table.rs:552:11
[INFO] [stdout]     |
[INFO] [stdout] 552 |     #[derive(Serialize, Deserialize)]
[INFO] [stdout]     |              ^--------
[INFO] [stdout]     |              |
[INFO] [stdout]     |              `Serialize` is not local
[INFO] [stdout]     |              move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_NodeContact`
[INFO] [stdout] 553 |     pub enum NodeContact {
[INFO] [stdout]     |              ----------- `NodeContact` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> network-devp2p/src/node_table.rs:552:22
[INFO] [stdout]     |
[INFO] [stdout] 552 |     #[derive(Serialize, Deserialize)]
[INFO] [stdout]     |                         ^----------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `Deserialize` is not local
[INFO] [stdout]     |                         move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_NodeContact`
[INFO] [stdout] 553 |     pub enum NodeContact {
[INFO] [stdout]     |              ----------- `NodeContact` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> network-devp2p/src/node_table.rs:573:11
[INFO] [stdout]     |
[INFO] [stdout] 573 |     #[derive(Serialize, Deserialize)]
[INFO] [stdout]     |              ^--------
[INFO] [stdout]     |              |
[INFO] [stdout]     |              `Serialize` is not local
[INFO] [stdout]     |              move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Node`
[INFO] [stdout] 574 |     pub struct Node {
[INFO] [stdout]     |                ---- `Node` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> network-devp2p/src/node_table.rs:573:22
[INFO] [stdout]     |
[INFO] [stdout] 573 |     #[derive(Serialize, Deserialize)]
[INFO] [stdout]     |                         ^----------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `Deserialize` is not local
[INFO] [stdout]     |                         move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Node`
[INFO] [stdout] 574 |     pub struct Node {
[INFO] [stdout]     |                ---- `Node` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hello_info`
[INFO] [stdout]   --> src/server.rs:79:13
[INFO] [stdout]    |
[INFO] [stdout] 79 |         let hello_info: String = rlp_obj.at(0).unwrap().as_val().unwrap();
[INFO] [stdout]    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hello_info`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hello_info`
[INFO] [stdout]   --> src/server.rs:79:13
[INFO] [stdout]    |
[INFO] [stdout] 79 |         let hello_info: String = rlp_obj.at(0).unwrap().as_val().unwrap();
[INFO] [stdout]    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hello_info`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0133]: call to unsafe function `set_var` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/server.rs:222:5
[INFO] [stdout]     |
[INFO] [stdout] 222 |     env::set_var("RUST_LOG", log_level);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stdout] error[E0133]: call to unsafe function `set_var` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/server.rs:222:5
[INFO] [stdout]     |
[INFO] [stdout] 222 |     env::set_var("RUST_LOG", log_level);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `bloom-p2p` (bin "bloom-p2p") due to 1 previous error; 8 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `bloom-p2p` (bin "bloom-p2p" test) due to 1 previous error; 8 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "2c53907b4599482f6b6804405dd0eaebf0952e8f73c3dd5087b8798571178f38", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2c53907b4599482f6b6804405dd0eaebf0952e8f73c3dd5087b8798571178f38", kill_on_drop: false }`
[INFO] [stdout] 2c53907b4599482f6b6804405dd0eaebf0952e8f73c3dd5087b8798571178f38
